import type { BaseFields, PageParams } from "@/api/typing";
import type { BaseStatus } from "@/typing";

/**分页查询数据表参数 */
export interface QueryParams extends PageParams {
  /**数据表名称 */
  tableName: string;
  /**数据表编码 */
  tableCode: string;
}
/**分页查询数据表响应 */
export interface QueryResult extends BaseFields {
  /**数据表ID */
  tableId: string;
  /**数据表名称 */
  tableName: string;
  /**数据表编码 */
  tableCode: string;
  /**数据表描述 */
  tableDesc: string;
  /**数据表状态 */
  tableStatus: string;
  /**发布状态 */
  publishStatus: BaseStatus;
}

/**数据表信息 */
export interface TableInfo {
  /**数据表ID */
  tableId: string;
  /**数据表名称 */
  tableName: string;
  /**数据表编码 */
  tableCode: string;
  /**数据表描述 */
  tableDesc: string;
  /**数据表状态 */
  tableStatus: string;
  /**发布状态 */
  publishStatus: BaseStatus;
}

/**数据表字段 */
export interface Field {
  /**字段名 */
  fieldCode: string;
  /**字段类型 */
  fieldType: string;
  /**字段长度 */
  fieldLength: number;
  /**小数点 */
  digit: number;
  /**不是null */
  notNull: BaseStatus;
  /**主键 */
  isPrimary: BaseStatus;
  /**字段描述 */
  fieldDesc: string;
  /**禁用 */
  disabled?: boolean;
}
export type Fields = Field[];

/**新增/编辑数据表参数 */
export interface TableParams {
  info: TableInfo;
  /**数据表字段列表 */
  fieldList: Fields;
}

/**删除数据表参数 */
export interface DeleteParams {
  /**数据表ID */
  tableId: string;
}

/**查询数据表字段参数 */
export interface QueryFieldParams {
  /**数据表ID */
  tableId: string;
}

/**查询数据表字段响应 */
export interface QueryFieldResult extends Field, BaseFields {
  /**字段ID */
  fieldId: string;
}

/**发布数据表参数 */
export interface PublishParams {
  /**数据表ID */
  tableId: string;
}
